Windows Forms - Anatomia Aplicacao Windows Forms

O que é uma Aplicacao Windows Forms

Numa explicação bem superficial podemos dizer que é uma aplicação Windows Nativa.

O que é uma aplicação Nativa ?

É uma aplicação que roda numa plataforma que não precisa de nada mais que os recursos da plataforma que está executando a aplicação.

Para dar um bom exemplo nós podemos fazer uma aplicação web que roda em qualquer browser mas não podemos dizer que ela é nativa da plataforma. Para ela rodar você precisa ir no sistema operacional e instalar, por exemplo, um browser que, normalmente, não é do próprio desenvolvedor da plataforma que esta executando a aplicação. Explicando mais simplificadamente você faz uma app web mas se você, por exemplo, estiver numa máquina windows precisa instalar um browser ( Edge, Chrome, etc.).

Sendo assim só o sistema operacional não é capaz de rodar a sua aplicação por isso chamamos ela de uma aplicação web que, por definição, não é nativa. Hoje temos recursos tipo 'web view' onde todos os sistemas operacionais conseguem exibir uma página web nativamente mas é um recurso que algumas vezes precisamos instalar, autorizar a instalação e até mesmo instalar recursos para que nossa app web rode no 'web view'.

Qual é o forte da Aplicacao Windows Forms

1-Simplicidade: Não tem plataforma de desenvolvimento mais simples que a Windows Forms. Contudo um sistema operacional windows, linux, IOS tem muitos recursos e a plataforma de desenvolvimento abre um leque muito grande de recursos que dá acesso as funções do windows, entre outros recursos da máquina, o que confunde um pouco os novatos parecendo super confuso ou complicado mas não é não, é um leque amplo de recursos que você usa quando precisar, se não precisar, esqueça que existe, fica para a próxima.

2-Velocidade: A aplicação nativa da plataforma é a mais rápida do que qualquer outra porque foi desenvolvida para a maquina exatamente, na medida, aproveitando todos os recursos. Recursos de compilação fazem com que o código fique o mais enxuto possível chegando muito próximo do assembler puro.

3-Comprometimento: Milhares de desenvolvedores desenvolvem aplicações com a plataforma o que exige por parte da Microsoft um contínuo acompanhamento para manter os recursos da linguagem compatível com o desenvolvimento do sistema operacional e os recursos do mesmo. Por exemplo eu posso desenvolver uma app que vai abrir um arquivo access como base de informações. Como o recurso é local corro poucos riscos e por isso posso usar um componente mais simples. Por outro lado se eu estou acessando uma base de dados na Nuvem eu necessito de segurança como criptografia das informações trocadas, utilização de certificados para que a informação vá da origem para um destino certificado, ou seja, com absoluta certeza que é o destino correto.

4-Não há outra ferramenta melhor para fazer automação de processos em uma empresa pelo leque de recursos, capacidade, leveza e facilidade, é verdadeiramente um bom-bril da Microsoft.

5-Pontos Fracos: Hoje tudo é web. Se você tiver que instalar um programa em 50 máquinas mesmo criando uma publicação automática vai ter máquinas desligadas que não podem ser atualizadas, máquinas que pifaram e foram substituídas, ou seja, tem um monte de empecilhos para atrapalhar a publicação do programa e você perde muito tempo corrigindo o problema especialmente se for num leque grande de máquinas.

Arquivos que compões uma aplicação Windows Forms

Uma aplicação Windows Forms pode ter inúmeros recursos associados a ela e aqui menciono apenas os básicos, os mais utilizados que é bom conhecer para no caso de um erro sabermos nos virar.

Se você é um programador experiente já deve ter se deparado com problemas de compilação que muitas vezes você não tem a mínima ideia de como o erro foi gerado e mesmo porque foi gerado.
Existe muita coisa que o Visual Studio faz ‘automaticamente’ e algumas vezes ele se perde e você fica mais perdido ainda do que o próprio Visual Studio.
Por esse motivo vamos começar definindo onde fica cada detalhe da aplicação.

1-Uma aplicação Windows forms em VB NET é composta dos seguintes arquivos:

1.1-Arquivo.vb:
     É o arquivo onde o form e todos os seus elementos são definidos.
    Possui 2 exibições possíveis:

1.1.1-Designer do relatório

Exibe visualmente como os componentes do formulário serão exibidos quando o programa for executado. Note que essa ‘exibição’ é feita pelo designer baseado no arquivo.vb, não é um arquivo em especial ou qualquer outro objeto particular para esta finalidade. É uma representação gráfica de como nossa app ficará ao ser executada.

Note que não é apenas no arquivo.vb que esse ‘designer’ se orienta. Os arquivos arquivo.Designer.vb e arquivo.resx possuem informações utilizadas pelo designer.

1.1.2-Code Behind

Ao pressionar F7 ou clicar com o botão direito do mouse no form e selecionar ‘exibir o código’ você verá o código visual basic por traz que definem as funcionalidades de cada elemento do form.
O mais básico seria o form.load que é o processo que será executado quando o formulário for carregado para ser exibido.

Note que houve uma separação entre a camada de apresentação exibida ao usuário ( que é o item anterior, design de relatório) e o código que roda por trás desse formulário que é o código vb, c#, phython, etc. Por isso a gente chama de 'code behind' o programa vb que corre 'por tras' do formulário.

Na imagem logo acima temos o código que será executado quando um textbox tiver seu conteúdo modificado (txtSQL.TextChanged), ou seja, é uma rotina disparada por um evento dispardo pelo usuário ao alterar o texto da caixa de texto(TextBox).

Enfim, todas as funcionalidades executadas pelo códigos do programa estarão no arquivo.vb.

1.2-Arquivo.Designer.vb

Sempre que você adiciona um novo item no formulário ou mesmo altera a posição, cor, formato, etc...o Visual Studio agrega essas definições desse componente neste arquivo, ou seja, que tipo de componente que é, seu posicionamento, tamanho, cores...etc bem como os eventos disparados por esse componente.

Neste arquivo estão todos declarados:

1.2.1-Todos os componentes do form

1.2.2-As características desses componentes (dimensão, posição, etc.) no formulário:

1.2.3-O método de descarga dos objetos. Descarga é a liberação da memória e outros recursos utilizadas pelos objetos que na hora podem ser liberados pelo fechamento da aplicação, por exemplo.

1.3-Arquivo.resx

.res é um arquivo de recursos extras do programa.

Neste arquivo estarão as definições de componentes especiais, ou seja, que o vb normalmente não usaria mas foram incorporados ao form para acrescentar funcionalidades ou extender as funcionalidades do form chamando componentes extras do windows, por exemplo.

Por exemplo, o controle timer...ele gera eventos de num determinado período e não é necessário nada para dispará-los.
No exemplo acima temos também a definição de uma barra de menus (menu bar).
Outro recurso que fica no arquivo de recursos (.res) é o tratamento de mensagens em diversos idiomas. Podemos fazer uma aplicação com diversas mensagens em diversos idiomas e este tratamento 'automatico' do idioma dependente do idioma do ambiente do usuário utiliza as mensagens gravadas no arquivo .res.

Portanto, todas um simples formulário tem 3 arquivos associados a ele.

    •Arquivo.vb : é o seu código. Normalmente ou é um form ou um módulo.
    •Arquivo.Designer.vb : é o arquivo que informa os componentes dentro do formulário, posição, cor, dimensões, etc...
    •Arquivo.resx : São componentes especiais (recursos externos ao vb – sistema windows) que ocupam um espaço ou são definidos no formulário e podem ou não ocupar um espaço nesse formulário.